package com.greatwall.hip.cms.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
 * 重大疫情智能监测预警
 *
 * @author ljl
 * @date 2021/7/6 19:47
 **/
@Data
public class MonitorDiseaseAndPacsBarVO {
    @ApiModelProperty("门诊人次")
    private int outpatientCount;
    @ApiModelProperty("住院人次")
    private int inpatientCount;
    @ApiModelProperty("疾病种类")
    private int diseaseCategory;
    @ApiModelProperty("检查总人次数")
    private int examCount;
    @ApiModelProperty("14周岁以下就诊总人次数")
    private int childrenDiagnoseCount;

    @ApiModelProperty("门、急诊疾病谱")
    private DiseaseTag diseaseTag;
    @ApiModelProperty("特殊症状、体征异常人次数占比")
    private Symptom symptom;
    @ApiModelProperty("门、急诊特殊检查指标异常占比")
    private AbnormalPercent abnormalPercent;
    @ApiModelProperty("14周岁以下儿童门、急诊特殊检查指标异常占比")
    private ChildPercent childPercent;

    @ApiModel("门、急诊疾病谱")
    @Builder
    @Data
    public static class DiseaseTag {
        @ApiModelProperty("疾病名称")
        private List<String> diseases;

        @ApiModelProperty("人数")
        private List<String> percents;
    }

    @ApiModel("特殊症状、体征异常人次数占比")
    @Builder
    @Data
    public static class Symptom {

        /**
         * 症状：取疾病诊断中按上述描述的情况。（腹泻、呕吐、昏迷、创伤、体温异常等）
         */
        @ApiModelProperty("症状：取疾病诊断中按上述描述的情况。（腹泻、呕吐、昏迷、创伤、体温异常等）")
        private List<String> symptom;

        @ApiModelProperty("占比")
        private List<String> percents;
    }

    @ApiModel("门、急诊特殊检查指标异常占比")
    @Builder
    @Data
    public static class AbnormalPercent {

        @ApiModelProperty("检查总条数")
        private int totalCount;
        @ApiModelProperty("异常人次数，异常占比")
        private String abnormalCountAndPercent;
        @ApiModelProperty("肺炎占比，异常占比")
        private String pneumoniaCountAndPercent;
    }

    @ApiModel("14周岁以下儿童门、急诊特殊检查指标异常占比")
    @Builder
    @Data
    public static class ChildPercent {

        @ApiModelProperty("检查总条数")
        private int totalCount;
        @ApiModelProperty("异常人次数，异常占比")
        private String abnormalCountAndPercent;
        @ApiModelProperty("肺炎占比，异常占比")
        private String pneumoniaCountAndPercent;
    }

}
